r"""
通过把多个子提示Prompt，按一定的逻辑顺序或层级组合起来，形成一个整体的Prompt
实现多消息对话、多阶段任务、多输入源组合等场景
"""
from langchain_core.prompts import PromptTemplate

# 创建一个PromptTemplate对象，用于生成介绍某个主题的提示词
# topic：主题， length：字数限制
template1 = PromptTemplate.from_template("请介绍一个关于{topic}的主题\n字数限制为{length}字")
# 使用from方法来填充模板中的占位符，生成具体的提示词
prompt1 = template1.format(topic="LangChain", length=100)
print(prompt1)

print("=" * 50)
# 分别使用两个独立的PromptTemplate模板
prompt_a = PromptTemplate.from_template("请介绍一个关于{topic}的主题\n")
prompt_b = PromptTemplate.from_template("字数限制为{length}字")
# 把两个模板进行拼接组合
prompt_all = prompt_a + prompt_b
# 填充组合后模板的占位符，生成最终的提示词
prompt2 = prompt_all.format(topic="LangChain", length=100)
print(prompt2)